
\begin{flushright}
\zihao{1} 前言
\end{flushright}

C++模板在1990年就在“带注释的C++参考手册”(ARM;参见[ellisstroustrparm])中出现了，至今已经30多年了。在此之前，有更专业的书籍中对其详细论述过。十多年后，我们发现对于这个神秘、复杂、强大的C++特性，相应的基本概念介绍和高级技术文献居然少的可怜。本书的第一版中，我们想要解决这个问题，并决定写一本关于模板的书(有点不够谦逊)。

自2002年底发布第一版本后，C++发生了很大的变化。C++标准增加了很多新特性，C++社区不断创新也有助于展示基于模板的新编程技术。因此，本书的第二版保留了与第一版相同的目标，但使用的是“现代C++”。

我们以不同背景和不同目的来完成写书的任务。David(又名“Daveed”)是一位经验丰富的编译器作者，也是发展核心语言的C++标准委员会工作组的积极参与者，他对模板的所有功能(和问题)的精确和详细描述很感兴趣。Nico是一名“普通”的程序员，C++标准委员会库工作组的成员，他对模板的技术很感兴趣。Doug是一名模板库开发人员，成为编译器作者和语言设计师后，对收集、分类和评估用于构建模板库的技术很有兴趣。此外，我们希望与读者和整个社区积极分享这些知识，以减少误解、困惑或忧虑。

因此，会有示例概念介绍和模板行为的描述。从模板的原则开始，逐步发展到“模板的艺术”，将展现(或重新了解)静态多态性、类型特征、元编程和表达式模板等编程方式。还会更深入地了解C++标准库，其中所有的代码都会涉及模板。

写这本书的过程中，我们也学到了很多，也获得了很多快乐。希望在阅读本书时，您也能享受这本书带给您的快乐。